#ifndef TANK_H
#define TANK_H
#include <Ogre.h>
#include "MovableObject.h"


class Tank : public MovableObject
{
    public:
        Tank(float energy = 100.0,
             float shield = 0.0,
             float damage = 20.0,
             Ogre::Vector3 position = Ogre::Vector3::ZERO,
             Ogre::Vector3 movementDirection = Ogre::Vector3::UNIT_X,
             float speed = 15.0,
             Ogre::Vector3 shootingDirection = Ogre::Vector3::UNIT_X,
             Ogre::Angle shootingAngle = Ogre::Angle(0.0)
             ):
             MovableObject(position, movementDirection, speed),
             m_Energy(energy),
             m_Shield(shield),
             m_BaseDamage(damage),
             m_ShootingDirection(shootingDirection),
             m_ShootingAngle(shootingAngle)
             {}


        // getters
        float getEnergy();
        float getShield();
        float getDamage();
        Ogre::Vector3 getShootingDirection();
        Ogre::Angle getShootingAngle();

        // setters
        void setEnergy(float newEnergy);
        void setShield(float newShield);
        void setDamage(float newDamage);
        void setShootingDirection(Ogre::Vector3 newDirection);
        void setShootingAngle(Ogre::Angle newAngle);


    private:
        float m_Energy;
        float m_Shield;
        float m_BaseDamage;
        Ogre::Vector3 m_ShootingDirection;
        Ogre::Angle m_ShootingAngle;

};

#endif // TANK_H
